/**
 * Copyright (c) 2007,中企动力华南研发中心
 * All rights reserved.
 */
package com.ce.pms.charge.dao;

import java.util.List;

import com.ce.pms.base.dao.IPmsBaseDao;
import com.ce.pms.charge.model.BusinessCodeDomain;
import com.ce.pms.charge.vo.BusinessCodeVO;
import com.sitechasia.webx.core.support.Page;

/**
 * 功能描述：交易码管理<br>
 * @author 罗军林 创建日期：2008-7-31
 */
public interface IBusinessCodeDao extends IPmsBaseDao<BusinessCodeDomain>{

	/**
	 * 功能描述:根据查询条件及分页信息查询交易码<br>
	 * @param condition
	 * @param pageNo
	 * @param pageSize
	 * @return<br>
	 * Create author:罗军林<br>
	 * Create on:2008-7-31<br>
	 * Edit author:<br>
	 * Edit on:<br>
	 * Why:<br>
	 */
	public Page queryBusinessCode(BusinessCodeVO condition,int pageNo,int pageSize);

	/**
	 * 功能描述:统计交易码的数量<br>
	 * @param condition
	 * @return<br>
	 * Create author:罗军林<br>
	 * Create on:2008-8-5<br>
	 * Edit author:<br>
	 * Edit on:<br>
	 * Why:<br>
	 */
	public Long countBusinessCodeBizCode(BusinessCodeVO condition);

	/***
	 * 功能描述:  获取所有可用的交易码(类型为收入类型且未被引用的)<br>
	 * @return
	 * Create author:yandawei <br>
	 * Create on:2008-8-5  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public List<BusinessCodeVO> getDebitNotUseBusinessCodeList(String exceptId);

	/**
	 * 功能描述:获取所有可用的交易码，包括收入类型和支付类型,<br>
	 * @param code
	 * @return<br>
	 * Create author:罗军林<br>
	 * Create on:2008-8-6<br>
	 * Edit author:<br>
	 * Edit on:<br>
	 * Why:<br>
	 */
	public List<BusinessCodeDomain> getAllNotUseBusinessCodeList(String code);


	/**
	 * 功能描述: 获取所有支付类型的交易码 <br>
	 * @return
	 * Create author:yandawei <br>
	 * Create on:2008-9-8  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public List<BusinessCodeVO>  getAllCreditBusinessCodeList();

//	/**
//	 * 功能描述:查找支付类型指定支付方式的交易码<br>
//	 * @param payMethod
//	 * @return<br>
//	 * Create author:罗军林<br>
//	 * Create on:2008-9-28<br>
//	 * Edit author:<br>
//	 * Edit on:<br>
//	 * Why:<br>
//	 */
//	public BusinessCodeDomain findBusinessCodeByPayMethod(String payMethod);

	/**
	 * 功能描述:查找指定参数预设的CODE的交易码<br>
	 * @param code
	 * @return<br>
	 * Create author:罗军林<br>
	 * Create on:2008-10-13<br>
	 * Edit author:<br>
	 * Edit on:<br>
	 * Why:<br>
	 */
	public BusinessCodeDomain findBusinessCodeByParaDef(String code);

	/**
	 * 功能描述: 获取所有收入类型的交易码<br>
	 * @return
	 * Create author:yixianjian <br>
	 * Create on:2008-12-30  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public List<BusinessCodeDomain> getAllIncomeBusinessCode();
	/**
	 * 功能描述:查询ID列表指定交易码<br>
	 * @param codeIds
	 * @return
	 * Create author:yixianjian <br>
	 * Create on:2009-1-4  <br>
	 */
	public List<BusinessCodeDomain> findBusinessCodeByIds(List<Long> codeIds);
}
